home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc / Sample Code / CALib & You… / Source / CALib / Interfaces / CPlusPlus / CADefs.h next >
Encoding:
C/C++ Source or Header  |  1995-12-07  |  12.8 KB  |  427 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        CADefs.h
  3.  
  4.     Contains:    Container Application Library header (public)
  5.  
  6.     Written by:    Steve Foley
  7.  
  8.     Copyright:    © 1994 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.  
  12.          <7>      11/10/95    RB        Added kODPromiseFlavor, removed kODDragFlavor
  13.          <6>      5/6/95    SJF        WWDC bug fix session with Rick
  14.          <5>       5/4/95    SJF        Add CAError defintions
  15.          <4>      4/23/95    RB        Added CAFocus types
  16.          <2>      4/7/95    SJF        Cleanup
  17.          <2>       4/6/95    SJF        Cleanup...
  18.          <0>       4/4/95    SJF        Yanked defs from CALib.h file
  19.  
  20.     To Do:
  21.         - Implement
  22. */
  23. #ifndef _CADEFS_
  24. #define _CADEFS_
  25.  
  26. //=========================================================================
  27. // Constants
  28. //=========================================================================
  29.  
  30. // CALib Version constant
  31. #define CALIB_VERSION_1                    ((short)0x0100)
  32.  
  33. // CA Error codes
  34. #define kCAErrBase                3000
  35. #define    kCAErrInvalidParameter    kCAErrBase+0    // A bad param was passed to a CA routine
  36. #define kCAErrCantResolve        kCAErrBase+1    // Error resolving a CARef type
  37. #define kCAErrBadDocumentRef    kCAErrBase+2    // NULL or invalid Document ref
  38. #define    kCAErrExistingHandler    kCAErrBase+3    // Attempt to install duplicate handler
  39. #define    kCAErrInvalidHandler    kCAErrBase+4    // Attempt to remove wrong handler
  40. #define    kCAErrMissingHandler    kCAErrBase+5    // Required handler not installed.
  41. #define    kCAErrFrameAccess        kCAErrBase+6    // Can't access frames until a window is associated
  42. #define    kCAErrCantGetFocus        kCAErrBase+7
  43. #define    kCAErrCantFocusDocument    kCAErrBase+8    // Error setting document kind for i/o
  44. #define    kCAErrInvalidKind        kCAErrBase+9    // For multiple document kind routines
  45. #define    kCAErrKindExists        kCAErrBase+10    // CAAddKind() - kind already exists
  46. #define kCAErrFileDoesNotExist    kCAErrBase+11    // CASaveDocument().
  47. #define kCAErrIllegalOperation    kCAErrBase+12    // 
  48.  
  49. // CACloneKinds - Passed to CAGetClipboardDocument() & CAGetDragDropDocument()
  50. #define kCACloneCopy            1UL
  51. #define kCACloneCut                2UL
  52. #define kCAClonePaste            3UL
  53. #define kCACloneDropCopy        4UL
  54. #define kCACloneDropMove        5UL
  55. #define kCACloneToLink            6UL
  56. #define kCACloneFromLink        7UL
  57. #define kCACloneAll                8UL
  58.  
  59. // Drag result codes
  60. #define kCADropFail                1UL
  61. #define kCADropCopy                2UL
  62. #define kCADropMove                3UL
  63.  
  64.  
  65. #ifndef CALIBBUILD // Include these only as part of the public API
  66.  
  67. // Data transfer scrap formats
  68. #define kODShellSignature                'odtm'
  69. #define kCAScrapTypeODBentoContainer    'odcn'
  70. #define kCAPromiseFlavor                'prms'
  71. #define kCABentoFlavor                    0x626E746F        // 'bnto'
  72. #define kCAUserPromiseFlavor            0x66696c65        // 'file' ** For promising (not in 1.0)
  73. //#define kCAHFSPromise                    "OpenDoc:Type:HFSPromise" // ** not in 1.0
  74. #define kCAHFSPromise                    "+//ISO 9070/ANSI::113722::US::CI LABS::OpenDoc::Type:HFSPromise"
  75.  
  76. // kODAppleScrapTypePrefix should be prepended to standard OSType scrap types
  77. // ('PICT', 'TEXT', etc) before calling CAAddKind() or CASetDocumentKind()
  78. #define    kODAppleScrapTypePrefix    "+//ISO 9070/ANSI::113722::US::CI LABS::MacOS:ScrapType:"
  79.  
  80. // Menu command id's
  81. #ifndef SOM_Module_OpenDoc_Commands_defined
  82.  
  83. #define kCACommandShellFirst        1000
  84. #define kCACommandShellLast            20000
  85. #define kCACommandAppleMenu            1000
  86. #define kCACommandAbout                1001
  87. #define kCACommandDocumentMenu        2000
  88. #define kCACommandNew                2001
  89. #define kCACommandOpen                2002
  90. #define kCACommandOpenDocument        2003
  91. #define kCACommandInsert            2004
  92. #define kCACommandClose                2005
  93. #define kCACommandDeleteDocument    2006
  94. #define kCACommandSave                2007
  95. #define kCACommandSaveACopy            2008
  96. #define kCACommandRevert            2009
  97. #define kCACommandDraft                2010
  98. #define kCADCommandDocumentInfo        2011
  99. #define kCACommandPageSetup            2012
  100. #define kCACommandPrint                2013
  101. #define kCACommandEditMenu            3000
  102. #define kCACommandUndo                3001
  103. #define kCACommandRedo                3002
  104. #define kCACommandCut                3003
  105. #define kCACommandCopy                3004
  106. #define kCACommandPaste                3005
  107. #define kCACommandPasteAs            3006
  108. #define kCACommandClear                3007
  109. #define kCACommandSelectAll            3008
  110. #define kCACommandGetPartInfo        3009
  111. #define kCACommandPreferences        3010
  112. #define kCACommandViewAsWin            3011
  113.  
  114. // Menu command version
  115. #define OpenDoc_Commands_OpenDoc_Commands_Version "1.0."
  116.  
  117. #endif
  118. #endif // CALIBBUILD
  119.  
  120.  
  121. //=========================================================================
  122. // CALib Types
  123. //=========================================================================
  124.  
  125. //-------------------------------------------------------------------------
  126. // General
  127. //-------------------------------------------------------------------------
  128.  
  129. typedef unsigned long        CASize;
  130. typedef unsigned long        CAOffset;
  131. typedef unsigned long        CACloneKey;
  132. typedef unsigned long        CACloneKind;
  133. typedef unsigned long        CADropResult;
  134. typedef char*                CAISOStr;
  135.  
  136. typedef unsigned long        CAReference;
  137.  
  138. //-------------------------------------------------------------------------
  139. // Storage
  140. //-------------------------------------------------------------------------
  141.  
  142. typedef CAReference                CADocumentRef;        // CADocumentHandle
  143. typedef CAReference                CAFrameRef;
  144.  
  145.  
  146. //-------------------------------------------------------------------------
  147. // Imaging
  148. //-------------------------------------------------------------------------
  149.  
  150.  
  151. // CATransform
  152.  
  153. #if powerc
  154. #  pragma options align=mac68k
  155. #endif
  156.  
  157. typedef struct CATransform {
  158.     long m[3][3];
  159. } CATransform;
  160.  
  161. // CAGraphicsSystem (For CAGetCanvas() calls)
  162.  
  163. enum {
  164.     kCAQuickDraw    = 1,
  165.     kCAQuickDrawGX    = 2
  166. };
  167.  
  168. typedef short CAGraphicsSystem;
  169.  
  170. //-------------------------------------------------------------------------
  171. // Layout
  172. //-------------------------------------------------------------------------
  173.  
  174. // CAVisFrame
  175.  
  176. typedef CAReference            CAVisFrame;
  177.  
  178. // CAHighlight
  179.  
  180. enum {
  181.     kCANoHighlight = 0,
  182.     kCAFullHighlight,
  183.     kCADimHighlight
  184. };
  185. typedef short CAHighlight;
  186.  
  187.  
  188. //-------------------------------------------------------------------------
  189. //    Arbitration / Focusing
  190. //-------------------------------------------------------------------------
  191.  
  192. enum {
  193.     kCAPrimaryFocus,        // There is only one focus now (but room for expansion)
  194.     kCAModalFocus
  195. };
  196. typedef short CAFocusType;
  197.  
  198.  
  199. //-------------------------------------------------------------------------
  200. //    Menus
  201. //-------------------------------------------------------------------------
  202.  
  203. typedef short    CAMenuID;
  204. typedef short    CAMenuItemID;
  205. typedef long    CACommandID;
  206.  
  207. //-------------------------------------------------------------------------
  208. //    Events
  209. //-------------------------------------------------------------------------
  210.  
  211. #define kCAEvtMouseDownEmbedded        99     /*  99 */
  212. #define kCAEvtMouseUpEmbedded        100 /* 100 */
  213. #define kCAEvtMouseDownBorder        101 /* 101 */
  214. #define kCAEvtMouseUpBorder            102 /* 102 */
  215. #define kCAEvtBGMouseDownEmbedded    107 /* 107 */
  216.  
  217. typedef struct CAEventInfo
  218. {
  219.  
  220.     short        eventType;
  221.     CAFrameRef    embeddedFrame;
  222.     CAVisFrame    embeddedVisFrame;
  223.     Boolean        propagated;
  224.     
  225. } CAEventInfo;
  226.  
  227. //-------------------------------------------------------------------------
  228. //    Window Management
  229. //-------------------------------------------------------------------------
  230.  
  231. enum {
  232.     kCANoLayer,
  233.     kCADocumentWindow,
  234.     kCAFloatingWindow
  235. };
  236. typedef short CAWindowLayer;
  237.  
  238.  
  239. //=========================================================================
  240. // Proc type definitions
  241. //=========================================================================
  242.  
  243. //-------------------------------------------------------------------------
  244. // Error reporting
  245. //-------------------------------------------------------------------------
  246.  
  247. typedef void             (*    CAErrorProc)            (    OSErr, char* mesg );
  248.  
  249. //-------------------------------------------------------------------------
  250. // Embedded Frame Callbacks (Required)
  251. //-------------------------------------------------------------------------
  252.  
  253. typedef    pascal Boolean    (*CAFrameShapeRequestHandler)(    CADocumentRef,
  254.                                                         CAFrameRef,
  255.                                                         RgnHandle);
  256.  
  257.                                 
  258. //-------------------------------------------------------------------------
  259. //    Window Management Callbacks (Optional)
  260. //-------------------------------------------------------------------------
  261.  
  262. typedef WindowPtr    (*CAFrontWindowHandler)            (    CAWindowLayer );
  263. typedef void        (*CASelectWindowHandler)        (    WindowPtr );
  264. typedef Boolean        (*CAIsFloaterHandler)            (    WindowPtr );
  265.  
  266. // CAWindowActivateHandler - Called when a window is activated, deactivated
  267. //    by the ODWindowState.  OD does not generate activate events. 
  268.  
  269. typedef void        (*CAWindowActivateHandler)        (    WindowPtr, Boolean);
  270.  
  271. //-------------------------------------------------------------------------
  272. //    Arbitration / Focusing
  273. //-------------------------------------------------------------------------
  274.  
  275. typedef     void (* CAFocusAcquiredProc)            (    CADocumentRef, CAFocusType );
  276. typedef     void (* CAFocusLostProc)                (    CADocumentRef, CAFocusType );
  277.  
  278.  
  279. //-------------------------------------------------------------------------
  280. // Imaging
  281. //-------------------------------------------------------------------------
  282.  
  283. typedef     void (* CACanvasUpdatedProc)            (     GrafPtr );
  284.  
  285. //-------------------------------------------------------------------------
  286. // UI Events ***
  287. //-------------------------------------------------------------------------
  288.  
  289. typedef     Boolean (* CAAdjustBorderProc)             ( CADocumentRef, CAFrameRef, RgnHandle );
  290.  
  291.  
  292. //-------------------------------------------------------------------------
  293. // UPP support
  294. //-------------------------------------------------------------------------
  295.  
  296.  
  297. //-------------------------------------------------------------------------
  298. #if GENERATINGCFM
  299. typedef UniversalProcPtr                CAFrameShapeRequestHandlerUPP;
  300. #else
  301. typedef CAFrameShapeRequestHandlerProc    CAFrameShapeRequestHandlerUPP;
  302. #endif
  303.  
  304. enum {
  305.  
  306.     uppFrameShapeRequestHandlerInfo = kPascalStackBased
  307.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  308.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(CADocumentRef)))
  309.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(CAFrameRef)))
  310.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(RgnHandle)))
  311.  
  312. };
  313.  
  314. //-------------------------------------------------------------------------
  315. #if GENERATINGCFM
  316. typedef UniversalProcPtr                CAWindowActivateHandlerUPP;
  317. #else
  318. typedef CAWindowActivateHandlerProc    CAWindowActivateHandlerUPP;
  319. #endif
  320.  
  321. enum {
  322.  
  323.     uppCAWindowActivateHandlerInfo = kPascalStackBased
  324.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr)))
  325.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Boolean)))
  326.  
  327. };
  328.  
  329. //-------------------------------------------------------------------------
  330. #if GENERATINGCFM
  331. typedef UniversalProcPtr                CAFrontWindowHandlerUPP;
  332. #else
  333. typedef CAFrontWindowHandlerProc    CAFrontWindowHandlerUPP;
  334. #endif
  335.  
  336. enum {
  337.     uppCAFrontWindowHandlerInfo = kPascalStackBased
  338.          | RESULT_SIZE(SIZE_CODE(sizeof(WindowPtr)))
  339.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(CAWindowLayer)))
  340. };
  341.  
  342. //-------------------------------------------------------------------------
  343. #if GENERATINGCFM
  344. typedef UniversalProcPtr                CASelectWindowHandlerUPP;
  345. #else
  346. typedef CASelectWindowHandlerProc    CASelectWindowHandlerrUPP;
  347. #endif
  348.  
  349. enum {
  350.     uppCASelectWindowHandlerInfo = kPascalStackBased
  351.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr)))
  352. };
  353.  
  354. //-------------------------------------------------------------------------
  355. #if GENERATINGCFM
  356. typedef UniversalProcPtr                CAIsFloaterHandlerUPP;
  357. #else
  358. typedef CAIsFloaterHandlerProc    CAIsFloaterHandlerUPP;
  359. #endif
  360.  
  361. enum {
  362.     uppCAIsFloaterHandlerInfo = kPascalStackBased
  363.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  364.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(WindowPtr)))
  365. };
  366.  
  367. //-------------------------------------------------------------------------
  368. #if GENERATINGCFM
  369.     typedef UniversalProcPtr                CAFocusAcquiredProcUPP;
  370. #else
  371.     typedef CAFocusAcquiredProcProc            CAFocusAcquiredProcUPP;
  372. #endif
  373.  
  374. enum {
  375.  
  376.     uppCAFocusAcquiredProcInfo = kPascalStackBased
  377.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(CADocumentRef)))
  378.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(CAFocusType)))
  379.  
  380. };
  381.  
  382. //-------------------------------------------------------------------------
  383. #if GENERATINGCFM
  384.     typedef UniversalProcPtr                CAFocusLostProcUPP;
  385. #else
  386.     typedef CAFocusLostProcProc                CAFocusLostProcUPP;
  387. #endif
  388.  
  389. enum {
  390.  
  391.     uppCAFocusLostProcInfo = kPascalStackBased
  392.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(CADocumentRef)))
  393.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(CAFocusType)))
  394.  
  395. };
  396.  
  397. //-------------------------------------------------------------------------
  398. #if GENERATINGCFM
  399.     typedef UniversalProcPtr                CACanvasUpdatedProcUPP;
  400. #else
  401.     typedef CACanvasUpdatedProcProc            CACanvasUpdatedProcUPP;
  402. #endif
  403.  
  404. enum {
  405.  
  406.     uppCACanvasUpdatedProcInfo = kPascalStackBased
  407.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(GrafPtr)))
  408. };
  409.  
  410. //-------------------------------------------------------------------------
  411. #if GENERATINGCFM
  412.     typedef UniversalProcPtr                CAAdjustBorderProcUPP;
  413. #else
  414.     typedef CAAdjustBorderProcProc            CAAdjustBorderProcUPP;
  415. #endif
  416.  
  417. enum {
  418.  
  419.     uppCAAdjustBorderProcInfo = kPascalStackBased
  420.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(CADocumentRef)))
  421.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(CAFrameRef)))
  422.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(RgnHandle)))
  423.  
  424. };
  425.  
  426.  
  427. #endif